//第一步:引入node_modules里面依赖axios
import axios from "axios";
//引入进度条
import nprogress from 'nprogress';
//如果你看不到进度条是因为人家的样式你没有引入
import 'nprogress/nprogress.css'

//第二步:创建一个新的axios对象[包含一些其余配置项]
let requests = axios.create({
    baseURL: '/mock',//基础路径,将来发请求的时候在路径当中都带有/api
    timeout: 5000,//超时的时间的设置
});
//请求拦截器
requests.interceptors.request.use((config) => {
    //发请求之前进度条开始动
    nprogress.start();
    //config是一个配置对象:有一个很重要的东西,请求头[给服务器携带参数],在这里书写不就是公共参数！！！
    return config;
});

//响应拦截器:use回调  响应成功回调  响应失败的回调
requests.interceptors.response.use((res) => {
    //进度条消失
    nprogress.done();
    //数据响应成功回调 
    return res.data;//简化服务器返回的数据

}, (err) => {
    //服务器数据：成功、失败。失败处理也很重要
    //存在代理跨域没有设置
    if (err.code == "ERR_NETWORK") {
        alert('兄弟代理跨域你没整')
    }
    //响应失败的回调---终止Promise链即可
    //响应失败的判断可以在这里处理
    return new Promise(() => { });//终止Promise，返回一个pending类型Promise对象
});

//对外暴露:第二个requtes:要不厌请求、响应拦截器白写了
export default requests;